function store() {
    this.products = [
        new product("c1.5", "Coca de 1.5 Litros!!!!!!!!!!!!!!!!", "Coca cola", 12,["gaseosas","cocacola"]),
        new product("p1", "Pepsi de litro ", "pepsi desc", 50,["gaseosas","cola"]),
        new product("p2", "Pepsi de 2 litro ", "pepsi 2 desc", 50,["gaseosas","cola"]),
        new product("c2", "Coca  2L desc", "Coca Cola", 25,["gaseosas"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "producto 1", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod9", "producto 9", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod8", "producto 8", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod7", "producto 7", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod6", "producto 6", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod5", "producto 5", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod4", "producto 4", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod3", "producto 3", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod2", "producto 2", "dec prodocto1", 25,["categoria 1","categoria 2"]),
        new product("cod1", "         1111111 vinasos", "dec prodocto1", 25,["categoria 1","vinos"])
    ];
}

store.prototype.getProducts = function () {
    return this.products;
}


function product(sku, name, description, price, categories) {
    this.sku = sku; // product code (SKU = stock keeping unit)
    this.name = name;
    this.description = description;
    this.price = price;
    this.categories = "";
    if ( typeof categories != "undefined") {
        this.categories = categories;
    }
}

function pedido(idCli,items) {
    this.idCli = idCli; // product code (SKU = stock keeping unit)
    this.items = items;
}

function pedidos() {
    this.items = [];
    this.load();
}

pedidos.prototype.load= function(){
    var items = localStorage != null && localStorage["lcPedidos"] != "undefined" ? localStorage["lcPedidos"] : null;
     if (items == null) {
       //cargar desde la web  
     }else{
        this.items = JSON.parse(items);
     }
}

pedidos.prototype.addAndSave= function(pedido){
    this.items.push(pedido);
    if ( localStorage != null && JSON != null ) {
        console.log("guardando el pedido");
        localStorage["lcPedidos"] = JSON.stringify(this.items);
    }
}



//
function products() {
    this.lsKey="lcProductos";
    this.items = [];
    this.getItems = function(){return this.items};
    this.webSync = function(){
            console.log("cargando productos desde la web");
            st=new window.store();
            this.items = st.getProducts();
        };
    this.cleanLS = function(){
            if (localStorage != null) { 
                console.log("limpiando LS");
                localStorage[this.lsKey]=[];
            }
        };        
    this.loadProducts();
    // save items to local storage when unloading
   // var self = this;
    $(window).unload(function () {
//        if (self.clearCart) {
//            self.clearItems();
//        }
//        self.saveItems();
//        self.clearCart = false;
    });
    
}
products.prototype.getProduct = function (sku) {
    for (var i = 0; i < this.items.length; i++) {
        if (this.items[i].sku == sku){
            return this.items[i];
        }
    }
    return null;
}

// Carga productos de LS, sino hay nada o tiene errores carga desde la web
products.prototype.loadProducts = function () {
    
    var loadFromWeb = false;
    var limitGroup = 300;
    var _items;
    var items = localStorage != null && localStorage[this.lsKey] != "undefined" ? localStorage[this.lsKey] : null;
    if (items == null) {
        this.webSync();
        this.saveProducts();
        return;
    }else{
        console.log("cargando productos desde LS");
        try {
            _items = JSON.parse(items);
        } catch (err) {
              _items = [];
              console.log("error al parsear los productos desde LS");
              this.cleanLS();
              this.webSync();
              this.saveProducts();
              return;
        }
    }
    if (_items != null && JSON != null) {
        try {
            //
            for (var i = 0; i < _items.length; i++) {
                var item = _items[i];
                //console.log(item);
                if (item.sku != null && item.name != null && item.price != null ) {
                    item = new product(item.sku, item.name, item.description, item.price, item.categories);
                    this.items.push(item);
                }
            }
            //if (loadFromWeb)this.saveProducts();
        }
        catch (err) {
            // ignore errors while loading...
            console.log("**ERROR**");
            console.log(err);
        }
    }
}

// load items from local storage
products.prototype.saveProducts = function () {
   if ( localStorage != null && JSON != null ) {
        console.log("guardando productos en storage");
        localStorage[this.lsKey] = JSON.stringify(this.items);
    }
}



function Em(){
    this.products=new products();
    this.car={};
    this.expenses=[];
    this.shoppingCart = new shoppingCart();
    this.prods= JSON.parse(JSON.stringify(this.products.items));
    this.pedidos = new pedidos();
}

var EmApp = new Em();
